package com.spdzen.support;

import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * 密码工具类
 * 
 * @author accountwcx@qq.com
 *
 */
public abstract class PasswordUtils {
	private static int BASE_NUM = 10000;
	
	/**
	 * 密码加密
	 * 
	 * @param password 密码
	 * @return 加密后的密码
	 */
	public static String encrypt(String password) {
		if(StringUtils.isBlank(password)) {
			return "";
		}
		
		password = password.trim();
		
		int len = password.length();
		String code = new StringBuilder(len).append(password).append(BASE_NUM - len).reverse().toString();
		return DigestUtils.md5Hex(DigestUtils.sha256(code));
	}

	/**
	 * 密码比较
	 * 
	 * @param pwd 未加密的密码
	 * @param encryptedPwd 加密后的密码
	 * @return 两个密码相等返回true，否则返回false。
	 */
	public static boolean compare(String pwd, String encryptedPwd) {
		if(StringUtils.isBlank(pwd) || StringUtils.isBlank(encryptedPwd)) {
			return false;
		}
		
		return encrypt(pwd).equals(encryptedPwd);
	}
}
